In computer systems, and devices having an embedded processor and software, it may be necessary to update software or modify configuration parameters to fix defects or alter device operation. Users may be reluctant to try a new software configuration because it may not work in a satisfactory manner or may completely fail to work, resulting in device unavailability or decreased reliability.
When updating a router, bridge, and other system having a software-configured processor, a backup copy of the old configuration may be stored on a separate computer before establishing a new configuration. If the new configuration fails, the old configuration parameters can be copied from that separate computer to the embedded system. This copying is time consuming and creates the possibility that there may be new user errors in the reloading of the old software and reconfiguration of the system. In addition, this solution may require that the embedded system with the new configuration be at least partially working to restore the old configuration.
In general, the invention provides improved methods to configure embedded devices. In one aspect, the invention includes a system capable of storing both a current operable configuration of the software and a new configuration of the software. Implementations may store configuration data in one or more configuration records. The configuration records may store the status of multiple available configurations. An operating configuration may be selected by altering the configuration record and reinitializing the system.
The present invention relates to computer network systems and in particular to a method for initializing a system having a processor and a configuration storage. Implementations may allow changes to be made to an existing configuration of the network system, test the new configuration and optionally reject or accept the new configuration. There is also provided a fall-back mechanism which reboots the embedded system using the old configuration in case the new configuration fails to function properly.
In general, in one aspect, the invention includes a computer configuration method. The method includes storing a first sequence of configuration records, storing an escape record, and establishing device configuration parameters. The escape record may include data designating the sequence of records as a test sequence. An escape record may be stored in non-volatile memory.
Implementations may include one or more of the following features. Escape record data may be altered to indicate an attempt to configure the device using configuration data in the test sequence. Device parameters may be set in accordance with configuration data in a first configuration record. The device may be reinitialized and during reinitialization may detect an escape record designating a sequence of configuration records as a test sequence. Detected escape records may be altered to designate the first sequence as a rejected sequence. Receiving data indicating whether an operational device configuration is to be accepted or rejected, and selectively altering escape record data to indicate whether the first sequence has been accepted or rejected.
In general, in another aspect, the invention includes a computer program residing on a computer-readable medium. The program includes instructions for causing a computer to store a first sequence of escape records, store an escape record, and establish device configuration parameters in accordance with the configuration data in the test sequence. Each configuration record includes device configuration data. The escape record includes data designating the first sequence as a test sequence.
In general, in another aspect the invention includes a processor-based apparatus including a processor, a configurable peripheral device operationally coupled to the processor, and a memory operationally coupled to the processor. The memory stores instructions causing the processor to store a first sequence of configuration records in a second memory, each record including device configuration data, store an escape record in the second memory, the escape record including data designating the first sequence as a test sequence, configure the peripheral device in accordance with the configuration data in the test sequence. Implementations may include one or more of the following features. The apparatus may include a hard disk, RAM, FLASH, and other memory.
Other features and advantages will be readily apparent from the following description, the accompanying drawings, and the claims.